package com.admin.common.filter;

// public class MyHttpServletRequestWrapper extends HttpServletRequestWrapper {
// private final byte[] body;
//
// public MyHttpServletRequestWrapper(HttpServletRequest request) throws IOException {
// super(request);
// String sessionStream = getBodyString(request);
// body = sessionStream.getBytes(Charset.forName("UTF-8"));
// }
//
// /**
// * 获取请求Body
// *
// * @param request
// * @return
// */
// public String getBodyString(final ServletRequest request) {
// StringBuilder sb = new StringBuilder();
// InputStream inputStream = null;
// BufferedReader reader = null;
// try {
// inputStream = cloneInputStream(request.getInputStream());
// reader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-8")));
// String line = "";
// while ((line = reader.readLine()) != null) {
// sb.append(line);
// }
// } catch (IOException e) {
// e.printStackTrace();
// } finally {
// if (inputStream != null) {
// try {
// inputStream.close();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
// if (reader != null) {
// try {
// reader.close();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
// }
// return sb.toString();
// }
//
// /**
// * 复制输入流
// *
// * @param inputStream
// * @return</br>
// */
// public InputStream cloneInputStream(ServletInputStream inputStream) {
// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// byte[] buffer = new byte[1024];
// int len;
// try {
// while ((len = inputStream.read(buffer)) > -1) {
// byteArrayOutputStream.write(buffer, 0, len);
// }
// byteArrayOutputStream.flush();
// } catch (IOException e) {
// e.printStackTrace();
// }
// InputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
// return byteArrayInputStream;
// }
//
// @Override
// public BufferedReader getReader() throws IOException {
// return new BufferedReader(new InputStreamReader(getInputStream()));
// }
//
// @Override
// public ServletInputStream getInputStream() throws IOException {
//
// final ByteArrayInputStream bais = new ByteArrayInputStream(body);
//
// return new ServletInputStream() {
//
// @Override
// public int read() throws IOException {
// return bais.read();
// }
//
// @Override
// public boolean isFinished() {
// return false;
// }
//
// @Override
// public boolean isReady() {
// return false;
// }
//
// @Override
// public void setReadListener(ReadListener readListener) {}
// };
// }
// }
